Ruby on Rails
Railsは、「”こだわりのある”ソフトウェア(opinionated software)」なんです。まず、ソフトウェアの古い考えを無視しています。古い考えとは「柔軟性」のことです——できるだけ多くのことに対応できるようにってやつですね。この考えそのものは批判すべきものではありませんが、Railsではこれを無視しています。
Railsでは、アプリケーションレベルの柔軟性を得るために、インフラレベルの柔軟性を犠牲にしています。私がRailsの中に組み込んだ「黄金の道」に沿って開発を行えば、ものすごく生産性が向上します。アプリケーションレベルでは、より多く、より早く、より良いものが開発できます。
“こだわりのある”ソフトウェアの特徴のひとつに「conventions over configuration」があります。クラス名は単数形でテーブル名は複数形(personクラスがpeopleテーブルと関連している)といった基本的な規約に従えば、クラスとテーブル間のリンクの設定をする必要がありません。クラスが自動的に永続化のためのテーブルを判別します。Railsにはそのような例がいくつもあります。すべてをまとめると、ものすごい違いになりますね。 運用
Google Cloud 上で Rails をできるだけインフラ運用しなくて済むように構築するとしたら、こういう構成にするのはどうだろうか?
非同期ワーカーには GKE Autopilot
DB マイグレーションには GKE Autopilot